"use client"; import { DepositsTypes, RewardsType } from "@/api/depositsApi"; import { getUserMoneyApi, getUserRechargeApi } from "@/api/user"; import Box from "@/components/Box"; import ButtonOwn from "@/components/ButtonOwn"; import TipsModal, { ModalProps } from "@/components/TipsModal"; import { useUserInfoStore } from "@/stores/useUserInfoStore"; import { neReg } from "@/utils"; import { Button, Form, Input, Toast } from "antd-mobile"; import { FormInstance } from "antd-mobile/es/components/form"; import { useTranslations } from "next-intl"; import { FC, Fragment, useLayoutEffect, useRef, useState } from "react"; import actions from "@/app/[locale]/(TabBar)/deposit/actions"; import Empty from "@/components/Empty"; import "@/styles/deposit.scss"; import { server } from "@/utils/client"; import Image from "next/image"; interface Props {} interface RewardsProps { rewards: RewardsType[]; } const RewardsText: FC = (props) => { const { rewards } = props; // {/*1现金2彩金3免费币4重玩币*/} const t = useTranslations(); const calcRewards = rewards .map((item) => { // let text = item.ratio > 0 ? `${item.ratio}%` : `${item.reward}`; // 根据coin_type添加后缀 const suffixes = { 1: t("ProfilePage.balance"), 2: t("ProfilePage.bonus"), 3: t("ProfilePage.free"), 4: t("ProfilePage.replay"), }; let text = ""; // 设置基础奖励文本 if (item.ratio > 0) { text = `${item.ratio}%`; } else { text = `${item.reward}`; } if (item.ratio > 0 && item.reward > 0) { text = `${item.ratio}%${suffixes[item.coin_type]}, ${item.reward}`; } // 如果coin_type在suffixes中存在,则添加相应的后缀 if (suffixes.hasOwnProperty(item.coin_type)) { text += suffixes[item.coin_type]; } return text; }) .join(","); return (
+ {calcRewards}
); }; const getDepositApi = async () => { return server .request({ url: "/v1/api/user/user_deposit_config", method: "post", data: { activity_type: 0 }, }) .then((res) => { if (res.code === 200) return res.data; return []; }); }; const DepositData: FC = (props) => { const t = useTranslations(); const userInfo = useUserInfoStore((state) => state.userInfo); const [depositState, setDepositState] = useState([]); const [activeType, setActiveType] = useState>({}); const formInstanceRef = useRef(null); let [amount, setAmount] = useState(undefined); const titleChangeHandler = (item: DepositsTypes, index: number) => { setAmount(undefined); setActiveType(item); formInstanceRef.current?.resetFields(); }; const isStrictMode = true; const tipModelRef = useRef(null); // 充值清空打码量弹窗 const [formData, setFormData] = useState({}); // 存放表单数据 const onFinish = async (values: any) => { const params = { ...values, channel_id: activeType.id, amount: +values.amount }; const res = await getUserMoneyApi(); console.log(`🚀🚀🚀🚀🚀-> in DepositData.tsx on 99`, res); if (res.data?.tips_reset_rollover) { tipModelRef.current?.onOpen(); setFormData(params); return; } handleUserRecharge(false, params); }; const handleUserRecharge = (is_reset_rollover: boolean, data?: any) => { let params = data || formData; getUserRechargeApi({ is_reset_rollover, ...params }) .then(async (res) => { formInstanceRef.current?.resetFields(); Toast.show({ icon: "success", content: t("code.200"), maskClickable: false }); tipModelRef.current?.onClose(); setAmount(undefined); if (res.data.pay_url) { window.open(res.data.pay_url); } const data = await getDepositApi(); setDepositState(data); setActiveType(data[0]); await actions(); }) .catch((error) => { Toast.show({ content: t(`code${error.data.code}`), maskClickable: false }); }); }; const onValuesChange = (changeValues: any) => { if (changeValues.amount) { setAmount(changeValues.amount); } }; const amountChange = (value: number) => { formInstanceRef.current?.setFieldValue("amount", value); setAmount(value); }; const amountValidator = (rules: any, value: any) => { if (!value) return Promise.reject(new Error(t("form.amount"))); if (+value < activeType.min_amount!) return Promise.reject( new Error(t("form.amountMinReg", { amount: activeType.min_amount })) ); if (+value > activeType.max_amount!) return Promise.reject( new Error(t("form.amountMaxReg", { amount: activeType.max_amount })) ); return Promise.resolve(); }; useLayoutEffect(() => { getDepositApi().then((data) => { setDepositState(data); setActiveType(data[0]); }); }, []); if (!depositState.length) return ; return (
{activeType.name
{depositState.map((item, index) => { return (

titleChangeHandler(item, index)} > {item.name}

); })}
{t("DepositPage.DepositarAgora")} } initialValues={userInfo} onFinish={onFinish} onValuesChange={onValuesChange} > {isStrictMode ? ( <> ) : null}
    {activeType?.products?.map((item, index) => (
  • amountChange(item.amount)} > {!!item.badge && }
    {/* */} R$ {item.amount}
    {item.rewards && ( p.coin_type - n.coin_type ) } /> )}
  • ))}
{t("DepositPage.depositTips")}

Mantenha Bônus

Recarga direta, mantendo a carteira principal e informações de carteira de bônus;

Esvaziem Bônus

Após a recarga, o saldo principal é mantido e todo o bônus é esvaziado, a nova carteira principal e a carteira de bônus são re-gravadas a quantidade de códigos jogados;

); }; export default DepositData;